[INFO] fetching crate assemble-core 0.2.0...
[INFO] checking assemble-core-0.2.0 against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] extracting crate assemble-core 0.2.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate assemble-core 0.2.0
[INFO] finished tweaking crates.io crate assemble-core 0.2.0
[INFO] tweaked toml for crates.io crate assemble-core 0.2.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate assemble-core 0.2.0 on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 291 packages to latest compatible versions
[INFO] [stderr]       Adding colored v2.2.0 (available: v3.0.0)
[INFO] [stderr]       Adding dirs v4.0.0 (available: v6.0.0)
[INFO] [stderr]       Adding fern v0.6.2 (available: v0.7.1)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v1.2.0)
[INFO] [stderr]       Adding heck v0.4.1 (available: v0.5.0)
[INFO] [stderr]       Adding indicatif v0.17.11 (available: v0.18.0)
[INFO] [stderr]       Adding itertools v0.10.5 (available: v0.14.0)
[INFO] [stderr]       Adding merge v0.1.0 (available: v0.2.0)
[INFO] [stderr]       Adding petgraph v0.6.5 (available: v0.8.2)
[INFO] [stderr]       Adding ptree v0.4.0 (available: v0.5.2)
[INFO] [stderr]       Adding rand v0.8.5 (available: v0.9.2)
[INFO] [stderr]       Adding reqwest v0.11.27 (available: v0.12.23)
[INFO] [stderr]       Adding ron v0.8.1 (available: v0.10.1)
[INFO] [stderr]       Adding strsim v0.10.0 (available: v0.11.1)
[INFO] [stderr]       Adding strum v0.24.1 (available: v0.27.2)
[INFO] [stderr]       Adding strum_macros v0.24.3 (available: v0.27.2)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.16)
[INFO] [stderr]       Adding toml v0.5.11 (available: v0.9.5)
[INFO] [stderr]       Adding toml_edit v0.16.2 (available: v0.23.4)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded merge v0.1.0
[INFO] [stderr]   Downloaded toml_datetime v0.5.1
[INFO] [stderr]   Downloaded merge_derive v0.1.0
[INFO] [stderr]   Downloaded assemble-macros v0.2.0
[INFO] [stderr]   Downloaded more_collection_macros v0.2.2
[INFO] [stderr]   Downloaded toml_edit v0.16.2
[INFO] [stderr]   Downloaded nom8 v0.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] df7354b45b553777081174f60b1c2c17983ae3d64e6d92635cbf1393c4688ca8
[INFO] running `Command { std: "docker" "start" "-a" "df7354b45b553777081174f60b1c2c17983ae3d64e6d92635cbf1393c4688ca8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "df7354b45b553777081174f60b1c2c17983ae3d64e6d92635cbf1393c4688ca8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df7354b45b553777081174f60b1c2c17983ae3d64e6d92635cbf1393c4688ca8", kill_on_drop: false }`
[INFO] [stdout] df7354b45b553777081174f60b1c2c17983ae3d64e6d92635cbf1393c4688ca8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6bf927471dde21ea06d9be6b3deae212575b1448512b3193c2b4f1b313de08ed
[INFO] running `Command { std: "docker" "start" "-a" "6bf927471dde21ea06d9be6b3deae212575b1448512b3193c2b4f1b313de08ed", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling cc v1.2.34
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking indexmap v2.11.0
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling nom v5.1.3
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking serde v0.8.23
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking anstyle-query v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]     Checking rustc-demangle v0.1.26
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking thread-id v4.2.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]     Checking unicode-width v0.2.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking rust-ini v0.13.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling time-macros v0.2.22
[INFO] [stderr]     Checking tint v1.0.1
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking clap_builder v4.5.44
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking directories v4.0.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking nom8 v0.2.0
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking backtrace v0.3.75
[INFO] [stderr]     Checking uuid v1.18.0
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]    Compiling merge_derive v0.1.0
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]     Checking fern v0.6.2
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking merge v0.1.0
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking strum v0.24.1
[INFO] [stderr]     Checking serde-hjson v0.9.1
[INFO] [stderr]     Checking more_collection_macros v0.2.2
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking clap v4.5.45
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking bitflags v2.9.3
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking toml_datetime v0.5.1
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking toml_edit v0.16.2
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking config v0.11.0
[INFO] [stderr]     Checking ptree v0.4.0
[INFO] [stderr]     Checking tempfile v3.21.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking assemble-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `TaskFinder` and `TaskPath`
[INFO] [stdout]   --> src/defaults/tasks/help.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::project::finder::{TaskFinder, TaskPath};
[INFO] [stdout]    |                              ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::ExecutableTask`
[INFO] [stdout]   --> src/defaults/tasks/help.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::task::ExecutableTask;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::finder::TaskFinder`
[INFO] [stdout]   --> src/identifier.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::project::finder::TaskFinder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/project.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Id` and `InvalidId`
[INFO] [stdout]   --> src/project.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::identifier::{Id, InvalidId, ProjectId, TaskId, TaskIdFactory};
[INFO] [stdout]    |                         ^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Plugin`
[INFO] [stdout]   --> src/project.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::plugins::{Plugin, PluginAware, PluginManager};
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::AnyTaskHandle`
[INFO] [stdout]   --> src/project.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::task::AnyTaskHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TaskHandle` and `Task`
[INFO] [stdout]   --> src/project.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::task::{Task, TaskHandle};
[INFO] [stdout]    |                   ^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Not`
[INFO] [stdout]   --> src/project.rs:30:33
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::ops::{Deref, DerefMut, Not};
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ReentrantMutexGuard`, `ReentrantMutex`, `RwLockReadGuard`, and `RwLockWriteGuard`
[INFO] [stdout]   --> src/project.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | use parking_lot::{ReentrantMutex, ReentrantMutexGuard, RwLock, RwLockReadGuard, RwLockWriteGuard};
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryLockError`
[INFO] [stdout]   --> src/project.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::sync::{Arc, Mutex, TryLockError, Weak};
[INFO] [stdout]    |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BuildError`
[INFO] [stdout]  --> src/project/error.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::exception::{BuildError, BuildException};
[INFO] [stdout]   |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TaskPath`
[INFO] [stdout]   --> src/project/error.rs:13:46
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::project::finder::{ProjectPathBuf, TaskPath, TaskPathBuf};
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/project/error.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::{fmt, io};
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project`
[INFO] [stdout]  --> src/project/finder.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::project;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/project/finder.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::finder::TaskPath`
[INFO] [stdout]   --> src/project.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | use crate::project::finder::TaskPath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TrueSharableProject`
[INFO] [stdout]   --> src/project.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 | use shared::{SharedProject, TrueSharableProject, WeakSharedProject};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::file_collection::FileCollection`
[INFO] [stdout]  --> src/startup/initialization/descriptor.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::file_collection::FileCollection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndentChars` and `PrintConfig`
[INFO] [stdout]  --> src/startup/initialization/descriptor.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ptree::{IndentChars, PrintConfig};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]   --> src/startup/initialization/descriptor.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::str::FromStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::shared::SharedProject`
[INFO] [stdout]  --> src/startup/initialization/settings.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::project::shared::SharedProject;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weak`
[INFO] [stdout]   --> src/startup/initialization.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Arc, Weak};
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/task/flags.rs:159:24
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let boxed: Box<(dyn Fn(&str) -> Result<Box<dyn Any>, Box<dyn Error + Send + Sync>>)> =
[INFO] [stdout]     |                        ^                                                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -         let boxed: Box<(dyn Fn(&str) -> Result<Box<dyn Any>, Box<dyn Error + Send + Sync>>)> =
[INFO] [stdout] 159 +         let boxed: Box<dyn Fn(&str) -> Result<Box<dyn Any>, Box<dyn Error + Send + Sync>>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProjectError`
[INFO] [stdout]  --> src/task/task_container.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::project::error::{ProjectError, ProjectResult};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::finder::TaskPath`
[INFO] [stdout]   --> src/task/task_container.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::project::finder::TaskPath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> src/task/task_container.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::Project`
[INFO] [stdout]  --> src/task/task_executor.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::project::Project;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProjectPath`
[INFO] [stdout]   --> src/task/task_executor.rs:12:45
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::project::finder::{ProjectFinder, ProjectPath, ProjectPathBuf};
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Weak`
[INFO] [stdout]   --> src/task/task_executor.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     use std::sync::Weak;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/unstable/text_factory/graph.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ptree::{Color, IndentChars, PrintConfig};
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Assemble`
[INFO] [stdout]   --> src/lib.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |     use crate::prelude::{Assemble, Settings};
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::identifier::TaskId`
[INFO] [stdout]   --> src/defaults/plugins.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     use crate::identifier::TaskId;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::finder::TaskFinder`
[INFO] [stdout]   --> src/defaults/plugins.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     use crate::project::finder::TaskFinder;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TaskFinder` and `TaskPath`
[INFO] [stdout]   --> src/defaults/tasks/help.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::project::finder::{TaskFinder, TaskPath};
[INFO] [stdout]    |                              ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::ExecutableTask`
[INFO] [stdout]   --> src/defaults/tasks/help.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::task::ExecutableTask;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::finder::TaskFinder`
[INFO] [stdout]   --> src/identifier.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::project::finder::TaskFinder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/project.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Id` and `InvalidId`
[INFO] [stdout]   --> src/project.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::identifier::{Id, InvalidId, ProjectId, TaskId, TaskIdFactory};
[INFO] [stdout]    |                         ^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Plugin`
[INFO] [stdout]   --> src/project.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::plugins::{Plugin, PluginAware, PluginManager};
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::AnyTaskHandle`
[INFO] [stdout]   --> src/project.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::task::AnyTaskHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TaskHandle` and `Task`
[INFO] [stdout]   --> src/project.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::task::{Task, TaskHandle};
[INFO] [stdout]    |                   ^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Not`
[INFO] [stdout]   --> src/project.rs:30:33
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::ops::{Deref, DerefMut, Not};
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ReentrantMutexGuard`, `ReentrantMutex`, `RwLockReadGuard`, and `RwLockWriteGuard`
[INFO] [stdout]   --> src/project.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | use parking_lot::{ReentrantMutex, ReentrantMutexGuard, RwLock, RwLockReadGuard, RwLockWriteGuard};
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryLockError`
[INFO] [stdout]   --> src/project.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::sync::{Arc, Mutex, TryLockError, Weak};
[INFO] [stdout]    |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::PayloadError`
[INFO] [stdout]  --> src/project/dev.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::error::PayloadError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/project/dev.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BuildError`
[INFO] [stdout]  --> src/project/error.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::exception::{BuildError, BuildException};
[INFO] [stdout]   |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TaskPath`
[INFO] [stdout]   --> src/project/error.rs:13:46
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::project::finder::{ProjectPathBuf, TaskPath, TaskPathBuf};
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/project/error.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::{fmt, io};
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project`
[INFO] [stdout]  --> src/project/finder.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::project;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/project/finder.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Project`
[INFO] [stdout]    --> src/project/finder.rs:442:9
[INFO] [stdout]     |
[INFO] [stdout] 442 |     use crate::Project;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell` and `Ref`
[INFO] [stdout]    --> src/project/finder.rs:443:21
[INFO] [stdout]     |
[INFO] [stdout] 443 |     use std::cell::{Cell, Ref, RefCell};
[INFO] [stdout]     |                     ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml::toml`
[INFO] [stdout]    --> src/project/finder.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |     use toml::toml;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::finder::TaskPath`
[INFO] [stdout]   --> src/project.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | use crate::project::finder::TaskPath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TrueSharableProject`
[INFO] [stdout]   --> src/project.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 | use shared::{SharedProject, TrueSharableProject, WeakSharedProject};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::file_collection::FileCollection`
[INFO] [stdout]  --> src/startup/initialization/descriptor.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::file_collection::FileCollection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndentChars` and `PrintConfig`
[INFO] [stdout]  --> src/startup/initialization/descriptor.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ptree::{IndentChars, PrintConfig};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]   --> src/startup/initialization/descriptor.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::str::FromStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::shared::SharedProject`
[INFO] [stdout]  --> src/startup/initialization/settings.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::project::shared::SharedProject;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weak`
[INFO] [stdout]   --> src/startup/initialization.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Arc, Weak};
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/task/flags.rs:159:24
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let boxed: Box<(dyn Fn(&str) -> Result<Box<dyn Any>, Box<dyn Error + Send + Sync>>)> =
[INFO] [stdout]     |                        ^                                                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -         let boxed: Box<(dyn Fn(&str) -> Result<Box<dyn Any>, Box<dyn Error + Send + Sync>>)> =
[INFO] [stdout] 159 +         let boxed: Box<dyn Fn(&str) -> Result<Box<dyn Any>, Box<dyn Error + Send + Sync>>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProjectError`
[INFO] [stdout]  --> src/task/task_container.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::project::error::{ProjectError, ProjectResult};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::finder::TaskPath`
[INFO] [stdout]   --> src/task/task_container.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::project::finder::TaskPath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> src/task/task_container.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::project::Project`
[INFO] [stdout]  --> src/task/task_executor.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::project::Project;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProjectPath`
[INFO] [stdout]   --> src/task/task_executor.rs:12:45
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::project::finder::{ProjectFinder, ProjectPath, ProjectPathBuf};
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Weak`
[INFO] [stdout]   --> src/task/task_executor.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     use std::sync::Weak;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/unstable/text_factory/graph.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ptree::{Color, IndentChars, PrintConfig};
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Assemble`
[INFO] [stdout]   --> src/lib.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |     use crate::prelude::{Assemble, Settings};
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/identifier.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let task_id: Box<dyn Buildable> = todo!();
[INFO] [stdout]     |                                           ------- any code following this expression is unreachable
[INFO] [stdout] 297 |         task_id.get_dependencies(project)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/identifier.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let task_id: Box<dyn Buildable> = todo!();
[INFO] [stdout]     |                                           ------- any code following this expression is unreachable
[INFO] [stdout] 297 |         task_id.get_dependencies(project)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tempfile::TempDir::into_path`: use TempDir::keep()
[INFO] [stdout]    --> src/workspace.rs:105:24
[INFO] [stdout]     |
[INFO] [stdout] 105 |         Self::new(file.into_path())
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/workspace.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::{Read, Write};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]   --> src/workspace.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::{Read, Write};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Update`
[INFO] [stdout]  --> src/cryptography.rs:6:36
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sha2::digest::{OutputSizeUser, Update};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::create_task::CreateTask`
[INFO] [stdout]   --> src/defaults/tasks.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::task::create_task::CreateTask;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]  --> src/dependencies/resolved_dependency.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Add, AddAssign};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/task.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/dependencies/unresolved_dependency.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GetBuildable`
[INFO] [stdout]   --> src/dependencies/configurations.rs:12:79
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::project::buildable::{Buildable, BuildableObject, BuiltByContainer, GetBuildable};
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/dependencies/file_dependency.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/task/work_handler.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Log`
[INFO] [stdout]  --> src/logging.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use log::{Level, LevelFilter, Log, Record, SetLoggerError};
[INFO] [stdout]   |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::plugins::PluginAware`
[INFO] [stdout]   --> src/dependencies/project_dependency.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::plugins::PluginAware;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]   --> src/startup/initialization/descriptor.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fmt::Write as _;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/identifier.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::task_io::TaskIO`
[INFO] [stdout]   --> src/task/executable.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::task::task_io::TaskIO;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/startup/initialization/descriptor.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::Write as _;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tempfile::TempDir::into_path`: use TempDir::keep()
[INFO] [stdout]    --> src/workspace.rs:105:24
[INFO] [stdout]     |
[INFO] [stdout] 105 |         Self::new(file.into_path())
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::file_collection::FileCollection`
[INFO] [stdout]    --> src/workspace.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |         use crate::file_collection::FileCollection;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/workspace.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::{Read, Write};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]   --> src/workspace.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::{Read, Write};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Update`
[INFO] [stdout]  --> src/cryptography.rs:6:36
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sha2::digest::{OutputSizeUser, Update};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::create_task::CreateTask`
[INFO] [stdout]   --> src/defaults/tasks.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::task::create_task::CreateTask;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]  --> src/dependencies/resolved_dependency.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Add, AddAssign};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/dependencies/unresolved_dependency.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::workspace::WorkspaceDirectory`
[INFO] [stdout]    --> src/project.rs:513:9
[INFO] [stdout]     |
[INFO] [stdout] 513 |     use crate::workspace::WorkspaceDirectory;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GetBuildable`
[INFO] [stdout]   --> src/dependencies/configurations.rs:12:79
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::project::buildable::{Buildable, BuildableObject, BuiltByContainer, GetBuildable};
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/task.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::create_task::CreateTask`
[INFO] [stdout]   --> src/dependencies/dependency_container.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     use crate::task::create_task::CreateTask;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/dependencies/file_dependency.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/startup/initialization/descriptor.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::Write as _;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/task/work_handler.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::plugins::PluginAware`
[INFO] [stdout]   --> src/dependencies/project_dependency.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::plugins::PluginAware;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Log`
[INFO] [stdout]  --> src/logging.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use log::{Level, LevelFilter, Log, Record, SetLoggerError};
[INFO] [stdout]   |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]   --> src/startup/initialization/descriptor.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fmt::Write as _;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/identifier.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::task::task_io::TaskIO`
[INFO] [stdout]   --> src/task/executable.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::task::task_io::TaskIO;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found` is never read
[INFO] [stdout]    --> src/dependencies/configurations.rs:134:33
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...                   found = true;
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found` is never read
[INFO] [stdout]    --> src/dependencies/configurations.rs:134:33
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...                   found = true;
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/identifier.rs:139:41
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn concat<I: Into<Self>>(&self, mut other: I) -> Self {
[INFO] [stdout]     |                                         ----^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/identifier.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let task_id: Box<dyn Buildable> = todo!();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `project`
[INFO] [stdout]    --> src/identifier.rs:295:32
[INFO] [stdout]     |
[INFO] [stdout] 295 |     fn get_dependencies(&self, project: &Project) -> ProjectResult<HashSet<TaskId>> {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/identifier.rs:139:41
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn concat<I: Into<Self>>(&self, mut other: I) -> Self {
[INFO] [stdout]     |                                         ----^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/identifier.rs:296:13
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let task_id: Box<dyn Buildable> = todo!();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `project`
[INFO] [stdout]    --> src/identifier.rs:295:32
[INFO] [stdout]     |
[INFO] [stdout] 295 |     fn get_dependencies(&self, project: &Project) -> ProjectResult<HashSet<TaskId>> {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/project/finder.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut at_root = |ptr: &Option<SharedProject>| -> bool {
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/project/finder.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut at_root = |ptr: &Option<SharedProject>| -> bool {
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/project/finder.rs:500:13
[INFO] [stdout]     |
[INFO] [stdout] 500 |         let mut count = RefCell::new(0_usize);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/project/finder.rs:533:13
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let mut count = RefCell::new(0_usize);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/startup/initialization/descriptor.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let mut dir = parent_dir.join(&name);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root`
[INFO] [stdout]   --> src/startup/initialization.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let ref root = parent.with(|p| p.root_project());
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/startup/initialization.rs:36:74
[INFO] [stdout]    |
[INFO] [stdout] 36 |         parent.subproject_in(descriptor.name(), descriptor.directory(), |p| Ok(()))
[INFO] [stdout]    |                                                                          ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/startup/initialization.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut output = Project::in_dir_with_id_and_root(
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/startup/initialization/descriptor.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let mut dir = parent_dir.join(&name);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root`
[INFO] [stdout]   --> src/startup/initialization.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let ref root = parent.with(|p| p.root_project());
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/startup/initialization.rs:36:74
[INFO] [stdout]    |
[INFO] [stdout] 36 |         parent.subproject_in(descriptor.name(), descriptor.directory(), |p| Ok(()))
[INFO] [stdout]    |                                                                          ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/startup/initialization.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut output = Project::in_dir_with_id_and_root(
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/unstable/text_factory/graph.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut config = config();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/unstable/text_factory/graph.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut config = config();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_release_url` is never used
[INFO] [stdout]   --> src/defaults/tasks/wrapper.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl Executable<WrapperTask> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn get_release_url(&self) -> Result<Url, ProjectError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_shell_script` is never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:177:4
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn generate_shell_script(_dest_file: &Path) -> Result<(), BuildResult> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_bat_script` is never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn generate_bat_script(_dest_file: &Path) -> Result<(), BuildResult> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_path` and `save_distribution_info` are never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | impl WrapperSettings {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn store_path(&self) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn save_distribution_info(&self, info: DistributionInfo) -> io::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `executable_path` is never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 253 | impl DistributionInfo {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 254 |     pub fn executable_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_distributions` is never used
[INFO] [stdout]   --> src/defaults/tasks/wrapper/github.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn get_distributions(version_tag: &str) -> Result<Vec<Distribution>, ProjectError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_distributions` is never used
[INFO] [stdout]   --> src/defaults/tasks/wrapper/github.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn get_current_distributions() -> Result<Vec<Distribution>, ProjectError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GetDistribution` is never used
[INFO] [stdout]   --> src/defaults/tasks/wrapper/github.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait GetDistribution {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `group`, `module`, `config`, and `semver_request` are never read
[INFO] [stdout]   --> src/dependencies/artifact_request.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ArtifactRequest {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 22 |     group: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     module: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     config: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     semver_request: VersionReq,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ArtifactRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `take_inner` are never used
[INFO] [stdout]    --> src/lazy_evaluation/prop.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | impl<T: Send + Sync + Clone> PropInner<T> {
[INFO] [stdout]     | ----------------------------------------- associated items in this implementation
[INFO] [stdout] 283 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn take_inner(&mut self) -> Option<Box<dyn Provider<T>>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CONTINUE_LOGGING` is never used
[INFO] [stdout]    --> src/logging.rs:510:8
[INFO] [stdout]     |
[INFO] [stdout] 510 | static CONTINUE_LOGGING: AtomicBool = AtomicBool::new(true);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `applied_plugins` is never read
[INFO] [stdout]   --> src/project.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct Project {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     applied_plugins: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Project` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/project/shared.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl SharedProject {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn new(project: Project) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `executable` is never used
[INFO] [stdout]    --> src/task/any_task.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 93  | impl AnyTaskHandleInner {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn executable(&mut self, project: &SharedProject) -> ProjectResult<Box<dyn FullTask>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `verify_value` is never read
[INFO] [stdout]   --> src/task/flags.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct OptionDeclaration {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     verify_value: Option<Box<dyn Fn(&str) -> Result<(), Box<dyn Error + Send + Sync>>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shared_project` is never used
[INFO] [stdout]   --> src/task/task_container.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TaskContainer {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn shared_project(&self) -> SharedProject {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `serialize_data` is never used
[INFO] [stdout]    --> src/task/work_handler.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 55  | impl WorkHandler {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn serialize_data<T: Serialize>(val: T) -> impl Provider<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildResultString` is never constructed
[INFO] [stdout]    --> src/unstable/text_factory.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct BuildResultString {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/unstable/text_factory.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl BuildResultString {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 119 |     /// Construct a new build result
[INFO] [stdout] 120 |     pub fn new(result_good: bool, time: Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_separator`, `set_indent`, `with_separator`, `with_indent`, `elements`, and `sublist` are never used
[INFO] [stdout]   --> src/unstable/text_factory/list.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<'f, B: BulletPointFactory> TextListFactory<'f, B> {
[INFO] [stdout]    | ------------------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn set_separator(&mut self, separator: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn set_indent(&mut self, indent: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn with_separator(mut self, separator: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn with_indent(mut self, indent: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn elements<O: ToString + 'f, I: IntoIterator<Item = O>>(mut self, elements: I) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn sublist<F>(mut self, func: F) -> Self
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StartSubList` and `EndSubList` are never constructed
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | enum TextListCommand<'f> {
[INFO] [stdout]     |      --------------- variants in this enum
[INFO] [stdout] 122 |     Text(Box<dyn ToString + 'f>),
[INFO] [stdout] 123 |     StartSubList,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 124 |     EndSubList,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `map` are never used
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub trait BulletPointFactory: Clone {
[INFO] [stdout]     |           ------------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn reset(&mut self);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn map<F>(self, func: F) -> MappedBulletPointFactory<Self, F>
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiLevelBulletFactory` is never constructed
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:321:12
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub struct MultiLevelBulletFactory<B: BulletPointFactory> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `increment_index`, `decrement_index`, and `current_factory` are never used
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | impl<B: BulletPointFactory> MultiLevelBulletFactory<B> {
[INFO] [stdout]     | ------------------------------------------------------ associated items in this implementation
[INFO] [stdout] 349 |     pub fn new<It: IntoIterator<Item = Ib>, Ib: IntoBulletPointFactory<Factory = B>>(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     fn increment_index(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn decrement_index(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn current_factory(&mut self) -> &mut B {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MappedBulletPointFactory` is never constructed
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:388:12
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub struct MappedBulletPointFactory<B, F>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InfoList` is never constructed
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:421:12
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub struct InfoList {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `point` are never used
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:427:12
[INFO] [stdout]     |
[INFO] [stdout] 426 | impl InfoList {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 427 |     pub fn new(heading: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn point(&mut self, info: String) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Counter` is never constructed
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:452:12
[INFO] [stdout]     |
[INFO] [stdout] 452 | pub struct Counter {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 457 | impl Counter {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 458 |     pub fn new(start: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `client` is never read
[INFO] [stdout]  --> src/web.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct WebClient {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] 5 |     client: Client,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_jobs` is never read
[INFO] [stdout]    --> src/work_queue.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 287 | struct Inner {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 288 |     max_jobs: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `owner` is never read
[INFO] [stdout]    --> src/work_queue.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub struct WorkHandle<'exec> {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 303 |     recv: Receiver<()>,
[INFO] [stdout] 304 |     owner: &'exec WorkerExecutor,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkHandle` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/dependencies/registry_container.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn supported_registries(&self, ty: &DependencyType) -> RegistrySet {
[INFO] [stdout]    |                                 ^^^^^                          ----------- the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn supported_registries(&self, ty: &DependencyType) -> RegistrySet<'_> {
[INFO] [stdout]    |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file_collection.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn iter(&self) -> FileIterator {
[INFO] [stdout]     |                 ^^^^^     ------------ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn iter(&self) -> FileIterator<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/flow/output.rs:145:34
[INFO] [stdout]     |
[INFO] [stdout] 145 |         BuildableObject::new(self.clone().into_buildable())
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Executable<AT>` does not implement `Clone`, so calling `clone` on `&Executable<AT>` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 145 -         BuildableObject::new(self.clone().into_buildable())
[INFO] [stdout] 145 +         BuildableObject::new(self.into_buildable())
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Executable<AT>`, implement `Clone` for it
[INFO] [stdout]    --> src/task/executable.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout] 29  + #[derive(Clone)]
[INFO] [stdout] 30  | pub struct Executable<T: Task> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/identifier.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn iter(&self) -> Iter {
[INFO] [stdout]     |                 ^^^^^     ---- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn iter(&self) -> Iter<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/project/shared.rs:73:54
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn guard<'g, T, F: Fn(&Project) -> &T + 'g>(&'g self, func: F) -> ProjectResult<Guard<T>> {
[INFO] [stdout]    |                                                      ^^ the lifetime is named here      -------- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'g`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn guard<'g, T, F: Fn(&Project) -> &T + 'g>(&'g self, func: F) -> ProjectResult<Guard<'g, T>> {
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/project/shared.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |         &'g self,
[INFO] [stdout]    |          ^^ the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 87 |     ) -> ProjectResult<GuardMut<T>>
[INFO] [stdout]    |                        ----------- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'g`
[INFO] [stdout]    |
[INFO] [stdout] 87 |     ) -> ProjectResult<GuardMut<'g, T>>
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:101:18
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn tasks(&self) -> GuardMut<TaskContainer> {
[INFO] [stdout]     |                  ^^^^^     ----------------------- the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn tasks(&self) -> GuardMut<'_, TaskContainer> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:182:27
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn task_container(&self) -> Guard<TaskContainer> {
[INFO] [stdout]     |                           ^^^^^     -------------------- the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn task_container(&self) -> Guard<'_, TaskContainer> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:187:35
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub(crate) fn task_id_factory(&self) -> Guard<TaskIdFactory> {
[INFO] [stdout]     |                                   ^^^^^     -------------------- the same lifetime is hidden here
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub(crate) fn task_id_factory(&self) -> Guard<'_, TaskIdFactory> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:205:31
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn configurations_mut(&mut self) -> GuardMut<ConfigurationHandler> {
[INFO] [stdout]     |                               ^^^^^^^^^     ------------------------------ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn configurations_mut(&mut self) -> GuardMut<'_, ConfigurationHandler> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:214:27
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn configurations(&self) -> Guard<ConfigurationHandler> {
[INFO] [stdout]     |                           ^^^^^     --------------------------- the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn configurations(&self) -> Guard<'_, ConfigurationHandler> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:219:22
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn workspace(&self) -> Guard<Workspace> {
[INFO] [stdout]     |                      ^^^^^     ---------------- the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn workspace(&self) -> Guard<'_, Workspace> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/task/flags.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn slurper(&self) -> OptionsSlurper {
[INFO] [stdout]    |                    ^^^^^     -------------- the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn slurper(&self) -> OptionsSlurper<'_> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/task/flags.rs:306:32
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn upgrade(self, decs: &OptionDeclarations) -> Result<OptionsDecoder, OptionsDecoderError> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^            -------------- the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn upgrade(self, decs: &OptionDeclarations) -> Result<OptionsDecoder<'_>, OptionsDecoderError> {
[INFO] [stdout]     |                                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/unstable/text_factory.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn important(&mut self) -> Important<W> {
[INFO] [stdout]    |                      ^^^^^^^^^     ------------ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn important(&mut self) -> Important<'_, W> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/unstable/text_factory.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn less_important(&mut self) -> LessImportant<W> {
[INFO] [stdout]    |                           ^^^^^^^^^     ---------------- the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn less_important(&mut self) -> LessImportant<'_, W> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities.rs:323:17
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn read(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]     |                 ^^^^^     ------------------ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn read(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |     pub fn read(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]     |                 ^^^^^     ------------------ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 337 |     pub fn read(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities.rs:341:18
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn write(&mut self) -> RwLockWriteGuard<T> {
[INFO] [stdout]     |                  ^^^^^^^^^     ------------------- the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn write(&mut self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/work_queue.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |         self.join_inner();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 192 |         let _ = self.join_inner();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:231:39
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn submit<I: Into<WorkToken>>(&self, token: I) -> io::Result<WorkHandle> {
[INFO] [stdout]     |                                       ^^^^^                          ---------- the same lifetime is hidden here
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn submit<I: Into<WorkToken>>(&self, token: I) -> io::Result<WorkHandle<'_>> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:282:18
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn queue(&self) -> WorkerQueue {
[INFO] [stdout]     |                  ^^^^^     ----------- the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn queue(&self) -> WorkerQueue<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:308:23
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn work_channel(exec: &WorkerExecutor) -> (WorkHandle, Sender<()>) {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^      ---------- the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn work_channel(exec: &WorkerExecutor) -> (WorkHandle<'_>, Sender<()>) {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:554:39
[INFO] [stdout]     |
[INFO] [stdout] 554 |     pub fn submit<W: Into<WorkToken>>(&mut self, work: W) -> io::Result<WorkHandle> {
[INFO] [stdout]     |                                       ^^^^^^^^^                         ---------- the same lifetime is hidden here
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 554 |     pub fn submit<W: Into<WorkToken>>(&mut self, work: W) -> io::Result<WorkHandle<'_>> {
[INFO] [stdout]     |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:592:19
[INFO] [stdout]     |
[INFO] [stdout] 592 |     pub fn submit(&mut self, work: W) -> io::Result<WorkHandle> {
[INFO] [stdout]     |                   ^^^^^^^^^                         ---------- the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 592 |     pub fn submit(&mut self, work: W) -> io::Result<WorkHandle<'_>> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/work_queue.rs:401:17
[INFO] [stdout]     |
[INFO] [stdout] 401 |                 self.message_sender.send(WorkerMessage::Stop);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                 let _ = self.message_sender.send(WorkerMessage::Stop);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/work_queue.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |                 handle.join();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 404 |                 let _ = handle.join();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/workspace.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir>;
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir<'_>>;
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/workspace.rs:80:22
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir>;
[INFO] [stdout]    |                      ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir<'_>>;
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:191:19
[INFO] [stdout]     |
[INFO] [stdout] 191 |     pub fn as_dir(&self) -> Dir {
[INFO] [stdout]     |                   ^^^^^     --- the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 191 |     pub fn as_dir(&self) -> Dir<'_> {
[INFO] [stdout]     |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |            ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:233:22
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |                      ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 272 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |            ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 272 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:284:22
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |                      ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_release_url` is never used
[INFO] [stdout]   --> src/defaults/tasks/wrapper.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl Executable<WrapperTask> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn get_release_url(&self) -> Result<Url, ProjectError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_shell_script` is never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:177:4
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn generate_shell_script(_dest_file: &Path) -> Result<(), BuildResult> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_bat_script` is never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn generate_bat_script(_dest_file: &Path) -> Result<(), BuildResult> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_distribution_info` is never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | impl WrapperSettings {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn save_distribution_info(&self, info: DistributionInfo) -> io::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `executable_path` is never used
[INFO] [stdout]    --> src/defaults/tasks/wrapper.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 253 | impl DistributionInfo {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 254 |     pub fn executable_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GetDistribution` is never used
[INFO] [stdout]   --> src/defaults/tasks/wrapper/github.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait GetDistribution {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `group`, `module`, `config`, and `semver_request` are never read
[INFO] [stdout]   --> src/dependencies/artifact_request.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ArtifactRequest {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 22 |     group: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     module: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     config: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     semver_request: VersionReq,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ArtifactRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `take_inner` are never used
[INFO] [stdout]    --> src/lazy_evaluation/prop.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | impl<T: Send + Sync + Clone> PropInner<T> {
[INFO] [stdout]     | ----------------------------------------- associated items in this implementation
[INFO] [stdout] 283 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn take_inner(&mut self) -> Option<Box<dyn Provider<T>>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CONTINUE_LOGGING` is never used
[INFO] [stdout]    --> src/logging.rs:510:8
[INFO] [stdout]     |
[INFO] [stdout] 510 | static CONTINUE_LOGGING: AtomicBool = AtomicBool::new(true);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `applied_plugins` is never read
[INFO] [stdout]   --> src/project.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct Project {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     applied_plugins: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Project` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/project/shared.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl SharedProject {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn new(project: Project) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `executable` is never used
[INFO] [stdout]    --> src/task/any_task.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 93  | impl AnyTaskHandleInner {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn executable(&mut self, project: &SharedProject) -> ProjectResult<Box<dyn FullTask>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `verify_value` is never read
[INFO] [stdout]   --> src/task/flags.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct OptionDeclaration {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     verify_value: Option<Box<dyn Fn(&str) -> Result<(), Box<dyn Error + Send + Sync>>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shared_project` is never used
[INFO] [stdout]   --> src/task/task_container.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TaskContainer {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn shared_project(&self) -> SharedProject {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `serialize_data` is never used
[INFO] [stdout]    --> src/task/work_handler.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 55  | impl WorkHandler {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn serialize_data<T: Serialize>(val: T) -> impl Provider<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildResultString` is never constructed
[INFO] [stdout]    --> src/unstable/text_factory.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct BuildResultString {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/unstable/text_factory.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl BuildResultString {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 119 |     /// Construct a new build result
[INFO] [stdout] 120 |     pub fn new(result_good: bool, time: Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_separator`, `set_indent`, `with_separator`, and `with_indent` are never used
[INFO] [stdout]   --> src/unstable/text_factory/list.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<'f, B: BulletPointFactory> TextListFactory<'f, B> {
[INFO] [stdout]    | ------------------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn set_separator(&mut self, separator: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn set_indent(&mut self, indent: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn with_separator(mut self, separator: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn with_indent(mut self, indent: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/unstable/text_factory/list.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub trait BulletPointFactory: Clone {
[INFO] [stdout]     |           ------------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn reset(&mut self);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `client` is never read
[INFO] [stdout]  --> src/web.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct WebClient {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] 5 |     client: Client,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_jobs` is never read
[INFO] [stdout]    --> src/work_queue.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 287 | struct Inner {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 288 |     max_jobs: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `owner` is never read
[INFO] [stdout]    --> src/work_queue.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub struct WorkHandle<'exec> {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 303 |     recv: Receiver<()>,
[INFO] [stdout] 304 |     owner: &'exec WorkerExecutor,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkHandle` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/dependencies/registry_container.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn supported_registries(&self, ty: &DependencyType) -> RegistrySet {
[INFO] [stdout]    |                                 ^^^^^                          ----------- the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn supported_registries(&self, ty: &DependencyType) -> RegistrySet<'_> {
[INFO] [stdout]    |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file_collection.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn iter(&self) -> FileIterator {
[INFO] [stdout]     |                 ^^^^^     ------------ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn iter(&self) -> FileIterator<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/flow/output.rs:145:34
[INFO] [stdout]     |
[INFO] [stdout] 145 |         BuildableObject::new(self.clone().into_buildable())
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Executable<AT>` does not implement `Clone`, so calling `clone` on `&Executable<AT>` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 145 -         BuildableObject::new(self.clone().into_buildable())
[INFO] [stdout] 145 +         BuildableObject::new(self.into_buildable())
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Executable<AT>`, implement `Clone` for it
[INFO] [stdout]    --> src/task/executable.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout] 29  + #[derive(Clone)]
[INFO] [stdout] 30  | pub struct Executable<T: Task> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/identifier.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn iter(&self) -> Iter {
[INFO] [stdout]     |                 ^^^^^     ---- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn iter(&self) -> Iter<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/project/shared.rs:73:54
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn guard<'g, T, F: Fn(&Project) -> &T + 'g>(&'g self, func: F) -> ProjectResult<Guard<T>> {
[INFO] [stdout]    |                                                      ^^ the lifetime is named here      -------- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'g`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn guard<'g, T, F: Fn(&Project) -> &T + 'g>(&'g self, func: F) -> ProjectResult<Guard<'g, T>> {
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/project/shared.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |         &'g self,
[INFO] [stdout]    |          ^^ the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 87 |     ) -> ProjectResult<GuardMut<T>>
[INFO] [stdout]    |                        ----------- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'g`
[INFO] [stdout]    |
[INFO] [stdout] 87 |     ) -> ProjectResult<GuardMut<'g, T>>
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:101:18
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn tasks(&self) -> GuardMut<TaskContainer> {
[INFO] [stdout]     |                  ^^^^^     ----------------------- the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn tasks(&self) -> GuardMut<'_, TaskContainer> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:182:27
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn task_container(&self) -> Guard<TaskContainer> {
[INFO] [stdout]     |                           ^^^^^     -------------------- the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn task_container(&self) -> Guard<'_, TaskContainer> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:187:35
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub(crate) fn task_id_factory(&self) -> Guard<TaskIdFactory> {
[INFO] [stdout]     |                                   ^^^^^     -------------------- the same lifetime is hidden here
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub(crate) fn task_id_factory(&self) -> Guard<'_, TaskIdFactory> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:205:31
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn configurations_mut(&mut self) -> GuardMut<ConfigurationHandler> {
[INFO] [stdout]     |                               ^^^^^^^^^     ------------------------------ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn configurations_mut(&mut self) -> GuardMut<'_, ConfigurationHandler> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:214:27
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn configurations(&self) -> Guard<ConfigurationHandler> {
[INFO] [stdout]     |                           ^^^^^     --------------------------- the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn configurations(&self) -> Guard<'_, ConfigurationHandler> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/project/shared.rs:219:22
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn workspace(&self) -> Guard<Workspace> {
[INFO] [stdout]     |                      ^^^^^     ---------------- the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn workspace(&self) -> Guard<'_, Workspace> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/task/flags.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn slurper(&self) -> OptionsSlurper {
[INFO] [stdout]    |                    ^^^^^     -------------- the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn slurper(&self) -> OptionsSlurper<'_> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/task/flags.rs:306:32
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn upgrade(self, decs: &OptionDeclarations) -> Result<OptionsDecoder, OptionsDecoderError> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^            -------------- the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn upgrade(self, decs: &OptionDeclarations) -> Result<OptionsDecoder<'_>, OptionsDecoderError> {
[INFO] [stdout]     |                                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/unstable/text_factory.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn important(&mut self) -> Important<W> {
[INFO] [stdout]    |                      ^^^^^^^^^     ------------ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn important(&mut self) -> Important<'_, W> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/unstable/text_factory.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn less_important(&mut self) -> LessImportant<W> {
[INFO] [stdout]    |                           ^^^^^^^^^     ---------------- the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn less_important(&mut self) -> LessImportant<'_, W> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities.rs:323:17
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn read(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]     |                 ^^^^^     ------------------ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn read(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |     pub fn read(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]     |                 ^^^^^     ------------------ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 337 |     pub fn read(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utilities.rs:341:18
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn write(&mut self) -> RwLockWriteGuard<T> {
[INFO] [stdout]     |                  ^^^^^^^^^     ------------------- the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn write(&mut self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/work_queue.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |         self.join_inner();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 192 |         let _ = self.join_inner();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:231:39
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn submit<I: Into<WorkToken>>(&self, token: I) -> io::Result<WorkHandle> {
[INFO] [stdout]     |                                       ^^^^^                          ---------- the same lifetime is hidden here
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn submit<I: Into<WorkToken>>(&self, token: I) -> io::Result<WorkHandle<'_>> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:282:18
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn queue(&self) -> WorkerQueue {
[INFO] [stdout]     |                  ^^^^^     ----------- the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn queue(&self) -> WorkerQueue<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:308:23
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn work_channel(exec: &WorkerExecutor) -> (WorkHandle, Sender<()>) {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^      ---------- the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn work_channel(exec: &WorkerExecutor) -> (WorkHandle<'_>, Sender<()>) {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:554:39
[INFO] [stdout]     |
[INFO] [stdout] 554 |     pub fn submit<W: Into<WorkToken>>(&mut self, work: W) -> io::Result<WorkHandle> {
[INFO] [stdout]     |                                       ^^^^^^^^^                         ---------- the same lifetime is hidden here
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 554 |     pub fn submit<W: Into<WorkToken>>(&mut self, work: W) -> io::Result<WorkHandle<'_>> {
[INFO] [stdout]     |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/work_queue.rs:592:19
[INFO] [stdout]     |
[INFO] [stdout] 592 |     pub fn submit(&mut self, work: W) -> io::Result<WorkHandle> {
[INFO] [stdout]     |                   ^^^^^^^^^                         ---------- the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 592 |     pub fn submit(&mut self, work: W) -> io::Result<WorkHandle<'_>> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/work_queue.rs:401:17
[INFO] [stdout]     |
[INFO] [stdout] 401 |                 self.message_sender.send(WorkerMessage::Stop);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                 let _ = self.message_sender.send(WorkerMessage::Stop);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/work_queue.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |                 handle.join();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 404 |                 let _ = handle.join();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/workspace.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir>;
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir<'_>>;
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/workspace.rs:80:22
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir>;
[INFO] [stdout]    |                      ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir<'_>>;
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:191:19
[INFO] [stdout]     |
[INFO] [stdout] 191 |     pub fn as_dir(&self) -> Dir {
[INFO] [stdout]     |                   ^^^^^     --- the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 191 |     pub fn as_dir(&self) -> Dir<'_> {
[INFO] [stdout]     |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |            ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:233:22
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |                      ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 272 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |            ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 272 |     fn dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/workspace.rs:284:22
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir> {
[INFO] [stdout]     |                      ^^^^^ the lifetime is elided here     --- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn protected_dir(&self, name: &str) -> WorkspaceResult<Dir<'_>> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `assemble_macros`
[INFO] [stdout]   --> tests/sub_projects.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use assemble_macros::{CreateTask, TaskIO};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `assemble_macros`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 12 - use assemble_macros::{CreateTask, TaskIO};
[INFO] [stdout] 12 + use assemble_core::{CreateTask, TaskIO};
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `assemble_macros`
[INFO] [stdout]   --> tests/dependencies.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use assemble_macros::{CreateTask, TaskIO};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `assemble_macros`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 14 - use assemble_macros::{CreateTask, TaskIO};
[INFO] [stdout] 14 + use assemble_core::{CreateTask, TaskIO};
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assemble_core::prelude::TaskId`
[INFO] [stdout]  --> tests/dependencies.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use assemble_core::prelude::TaskId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestArtifactTask: TaskIO` is not satisfied
[INFO] [stdout]   --> tests/sub_projects.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl InitializeTask for TestArtifactTask {}
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^ the trait `TaskIO` is not implemented for `TestArtifactTask`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]              assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]              assemble_core::defaults::tasks::Empty
[INFO] [stdout]    = note: required for `TestArtifactTask` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `InitializeTask`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task/initialize_task.rs:5:29
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub trait InitializeTask<T: Task = Self> {
[INFO] [stdout]    |                             ^^^^ required by this bound in `InitializeTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestCopy: TaskIO` is not satisfied
[INFO] [stdout]    --> tests/dependencies.rs:31:31
[INFO] [stdout]     |
[INFO] [stdout] 31  | impl SinglePathOutputTask for TestCopy {
[INFO] [stdout]     |                               ^^^^^^^^ the trait `TaskIO` is not implemented for `TestCopy`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]               Help
[INFO] [stdout]               TaskReport
[INFO] [stdout]               WrapperTask
[INFO] [stdout]               assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]               assemble_core::defaults::tasks::Empty
[INFO] [stdout]     = note: required for `TestCopy` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `SinglePathOutputTask`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/flow/output.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub trait SinglePathOutputTask: Task + Send + Sync + 'static {
[INFO] [stdout]     |                                 ^^^^ required by this bound in `SinglePathOutputTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestCopy: CreateTask` is not satisfied
[INFO] [stdout]    --> tests/dependencies.rs:31:31
[INFO] [stdout]     |
[INFO] [stdout] 31  | impl SinglePathOutputTask for TestCopy {
[INFO] [stdout]     |                               ^^^^^^^^ the trait `Default` is not implemented for `TestCopy`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `assemble_core::Task` is not implemented for `TestCopy`
[INFO] [stdout]             but trait `Task` is implemented for it
[INFO] [stdout]     = note: required for `TestCopy` to implement `CreateTask`
[INFO] [stdout]     = note: required for `TestCopy` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `SinglePathOutputTask`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/flow/output.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub trait SinglePathOutputTask: Task + Send + Sync + 'static {
[INFO] [stdout]     |                                 ^^^^ required by this bound in `SinglePathOutputTask`
[INFO] [stdout] help: consider annotating `TestCopy` with `#[derive(Default)]`
[INFO] [stdout]     |
[INFO] [stdout] 26  + #[derive(Default)]
[INFO] [stdout] 27  | struct TestCopy {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestCopy: TaskIO` is not satisfied
[INFO] [stdout]   --> tests/dependencies.rs:39:25
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl InitializeTask for TestCopy {
[INFO] [stdout]    |                         ^^^^^^^^ the trait `TaskIO` is not implemented for `TestCopy`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]              assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]              assemble_core::defaults::tasks::Empty
[INFO] [stdout]    = note: required for `TestCopy` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `InitializeTask`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task/initialize_task.rs:5:29
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub trait InitializeTask<T: Task = Self> {
[INFO] [stdout]    |                             ^^^^ required by this bound in `InitializeTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestArtifactTask: CreateTask` is not satisfied
[INFO] [stdout]   --> tests/sub_projects.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl InitializeTask for TestArtifactTask {}
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `TestArtifactTask`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `assemble_core::Task` is not implemented for `TestArtifactTask`
[INFO] [stdout]            but trait `Task` is implemented for it
[INFO] [stdout]    = note: required for `TestArtifactTask` to implement `CreateTask`
[INFO] [stdout]    = note: required for `TestArtifactTask` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `InitializeTask`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task/initialize_task.rs:5:29
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub trait InitializeTask<T: Task = Self> {
[INFO] [stdout]    |                             ^^^^ required by this bound in `InitializeTask`
[INFO] [stdout] help: consider annotating `TestArtifactTask` with `#[derive(Default)]`
[INFO] [stdout]    |
[INFO] [stdout] 19 + #[derive(Default)]
[INFO] [stdout] 20 | struct TestArtifactTask {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestArtifactTask: TaskIO` is not satisfied
[INFO] [stdout]   --> tests/sub_projects.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Task for TestArtifactTask {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^ the trait `TaskIO` is not implemented for `TestArtifactTask`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]              assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]              assemble_core::defaults::tasks::Empty
[INFO] [stdout] note: required by a bound in `assemble_core::Task`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task.rs:54:58
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Task: UpToDate + InitializeTask + CreateTask + TaskIO + Sized + Debug {
[INFO] [stdout]    |                                                          ^^^^^^ required by this bound in `Task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestArtifactTask: CreateTask` is not satisfied
[INFO] [stdout]   --> tests/sub_projects.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Task for TestArtifactTask {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `TestArtifactTask`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `CreateTask`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]    = note: required for `TestArtifactTask` to implement `CreateTask`
[INFO] [stdout] note: required by a bound in `assemble_core::Task`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task.rs:54:45
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Task: UpToDate + InitializeTask + CreateTask + TaskIO + Sized + Debug {
[INFO] [stdout]    |                                             ^^^^^^^^^^ required by this bound in `Task`
[INFO] [stdout] help: consider annotating `TestArtifactTask` with `#[derive(Default)]`
[INFO] [stdout]    |
[INFO] [stdout] 19 + #[derive(Default)]
[INFO] [stdout] 20 | struct TestArtifactTask {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestCopy: CreateTask` is not satisfied
[INFO] [stdout]   --> tests/dependencies.rs:39:25
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl InitializeTask for TestCopy {
[INFO] [stdout]    |                         ^^^^^^^^ the trait `Default` is not implemented for `TestCopy`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `assemble_core::Task` is not implemented for `TestCopy`
[INFO] [stdout]            but trait `Task` is implemented for it
[INFO] [stdout]    = note: required for `TestCopy` to implement `CreateTask`
[INFO] [stdout]    = note: required for `TestCopy` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `InitializeTask`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task/initialize_task.rs:5:29
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub trait InitializeTask<T: Task = Self> {
[INFO] [stdout]    |                             ^^^^ required by this bound in `InitializeTask`
[INFO] [stdout] help: consider annotating `TestCopy` with `#[derive(Default)]`
[INFO] [stdout]    |
[INFO] [stdout] 26 + #[derive(Default)]
[INFO] [stdout] 27 | struct TestCopy {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestCopy: TaskIO` is not satisfied
[INFO] [stdout]   --> tests/dependencies.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Task for TestCopy {
[INFO] [stdout]    |               ^^^^^^^^ the trait `TaskIO` is not implemented for `TestCopy`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]              assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]              assemble_core::defaults::tasks::Empty
[INFO] [stdout] note: required by a bound in `assemble_core::Task`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task.rs:54:58
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Task: UpToDate + InitializeTask + CreateTask + TaskIO + Sized + Debug {
[INFO] [stdout]    |                                                          ^^^^^^ required by this bound in `Task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestArtifactTask: TaskIO` is not satisfied
[INFO] [stdout]    --> tests/sub_projects.rs:32:31
[INFO] [stdout]     |
[INFO] [stdout] 32  | impl SinglePathOutputTask for TestArtifactTask {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^ the trait `TaskIO` is not implemented for `TestArtifactTask`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]               Help
[INFO] [stdout]               TaskReport
[INFO] [stdout]               WrapperTask
[INFO] [stdout]               assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]               assemble_core::defaults::tasks::Empty
[INFO] [stdout]     = note: required for `TestArtifactTask` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `SinglePathOutputTask`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/flow/output.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub trait SinglePathOutputTask: Task + Send + Sync + 'static {
[INFO] [stdout]     |                                 ^^^^ required by this bound in `SinglePathOutputTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestCopy: CreateTask` is not satisfied
[INFO] [stdout]   --> tests/dependencies.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Task for TestCopy {
[INFO] [stdout]    |               ^^^^^^^^ the trait `Default` is not implemented for `TestCopy`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `CreateTask`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]    = note: required for `TestCopy` to implement `CreateTask`
[INFO] [stdout] note: required by a bound in `assemble_core::Task`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task.rs:54:45
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Task: UpToDate + InitializeTask + CreateTask + TaskIO + Sized + Debug {
[INFO] [stdout]    |                                             ^^^^^^^^^^ required by this bound in `Task`
[INFO] [stdout] help: consider annotating `TestCopy` with `#[derive(Default)]`
[INFO] [stdout]    |
[INFO] [stdout] 26 + #[derive(Default)]
[INFO] [stdout] 27 | struct TestCopy {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TestArtifactTask: CreateTask` is not satisfied
[INFO] [stdout]    --> tests/sub_projects.rs:32:31
[INFO] [stdout]     |
[INFO] [stdout] 32  | impl SinglePathOutputTask for TestArtifactTask {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `TestArtifactTask`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `assemble_core::Task` is not implemented for `TestArtifactTask`
[INFO] [stdout]             but trait `Task` is implemented for it
[INFO] [stdout]     = note: required for `TestArtifactTask` to implement `CreateTask`
[INFO] [stdout]     = note: required for `TestArtifactTask` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `SinglePathOutputTask`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/flow/output.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub trait SinglePathOutputTask: Task + Send + Sync + 'static {
[INFO] [stdout]     |                                 ^^^^ required by this bound in `SinglePathOutputTask`
[INFO] [stdout] help: consider annotating `TestArtifactTask` with `#[derive(Default)]`
[INFO] [stdout]     |
[INFO] [stdout] 19  + #[derive(Default)]
[INFO] [stdout] 20  | struct TestArtifactTask {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assemble_core::lazy_evaluation::ProviderExt`
[INFO] [stdout]  --> tests/dependencies.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use assemble_core::lazy_evaluation::ProviderExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `assemble-core` (test "sub_projects") due to 7 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `assemble-core` (test "dependencies") due to 7 previous errors; 2 warnings emitted
[INFO] [stdout] error[E0432]: unresolved import `assemble_macros`
[INFO] [stdout]   --> tests/file_copier.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use assemble_macros::{CreateTask, TaskIO};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `assemble_macros`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 11 - use assemble_macros::{CreateTask, TaskIO};
[INFO] [stdout] 11 + use assemble_core::{CreateTask, TaskIO};
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `input` in this scope
[INFO] [stdout]   --> tests/file_copier.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 |     #[input(file)]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `output` in this scope
[INFO] [stdout]   --> tests/file_copier.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 |     #[output(file)]
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `CopyFile: TaskIO` is not satisfied
[INFO] [stdout]   --> tests/file_copier.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl InitializeTask for CopyFile {
[INFO] [stdout]    |                         ^^^^^^^^ the trait `TaskIO` is not implemented for `CopyFile`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]              assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]              assemble_core::defaults::tasks::Empty
[INFO] [stdout]    = note: required for `CopyFile` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `InitializeTask`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task/initialize_task.rs:5:29
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub trait InitializeTask<T: Task = Self> {
[INFO] [stdout]    |                             ^^^^ required by this bound in `InitializeTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `CopyFile: CreateTask` is not satisfied
[INFO] [stdout]   --> tests/file_copier.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl InitializeTask for CopyFile {
[INFO] [stdout]    |                         ^^^^^^^^ the trait `Default` is not implemented for `CopyFile`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `assemble_core::Task` is not implemented for `CopyFile`
[INFO] [stdout]            but trait `Task` is implemented for it
[INFO] [stdout]    = note: required for `CopyFile` to implement `CreateTask`
[INFO] [stdout]    = note: required for `CopyFile` to implement `assemble_core::Task`
[INFO] [stdout] note: required by a bound in `InitializeTask`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task/initialize_task.rs:5:29
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub trait InitializeTask<T: Task = Self> {
[INFO] [stdout]    |                             ^^^^ required by this bound in `InitializeTask`
[INFO] [stdout] help: consider annotating `CopyFile` with `#[derive(Default)]`
[INFO] [stdout]    |
[INFO] [stdout] 16 + #[derive(Default)]
[INFO] [stdout] 17 | pub struct CopyFile {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `CopyFile: TaskIO` is not satisfied
[INFO] [stdout]   --> tests/file_copier.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Task for CopyFile {
[INFO] [stdout]    |               ^^^^^^^^ the trait `TaskIO` is not implemented for `CopyFile`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `TaskIO<T>`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]              assemble_core::defaults::tasks::Basic<T>
[INFO] [stdout]              assemble_core::defaults::tasks::Empty
[INFO] [stdout] note: required by a bound in `assemble_core::Task`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task.rs:54:58
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Task: UpToDate + InitializeTask + CreateTask + TaskIO + Sized + Debug {
[INFO] [stdout]    |                                                          ^^^^^^ required by this bound in `Task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `CopyFile: CreateTask` is not satisfied
[INFO] [stdout]   --> tests/file_copier.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Task for CopyFile {
[INFO] [stdout]    |               ^^^^^^^^ the trait `Default` is not implemented for `CopyFile`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `CreateTask`:
[INFO] [stdout]              Help
[INFO] [stdout]              TaskReport
[INFO] [stdout]              WrapperTask
[INFO] [stdout]    = note: required for `CopyFile` to implement `CreateTask`
[INFO] [stdout] note: required by a bound in `assemble_core::Task`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/task.rs:54:45
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Task: UpToDate + InitializeTask + CreateTask + TaskIO + Sized + Debug {
[INFO] [stdout]    |                                             ^^^^^^^^^^ required by this bound in `Task`
[INFO] [stdout] help: consider annotating `CopyFile` with `#[derive(Default)]`
[INFO] [stdout]    |
[INFO] [stdout] 16 + #[derive(Default)]
[INFO] [stdout] 17 | pub struct CopyFile {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `assemble-core` (test "file_copier") due to 7 previous errors
[INFO] running `Command { std: "docker" "inspect" "6bf927471dde21ea06d9be6b3deae212575b1448512b3193c2b4f1b313de08ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6bf927471dde21ea06d9be6b3deae212575b1448512b3193c2b4f1b313de08ed", kill_on_drop: false }`
[INFO] [stdout] 6bf927471dde21ea06d9be6b3deae212575b1448512b3193c2b4f1b313de08ed
